package org.iteracionV.presen;



import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.border.EmptyBorder;

import org.iteracionI.persis.AgenteBD;
import org.iteracionIII.presen.IU_Trabajador_3;
import org.iteracionIV.presen.IU_Cliente;

import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;

public class IU_Login {

	private JFrame frame;

	private JPanel contentPane;
	static JLabel lblUsuario = new JLabel("USUARIO:");
	static JLabel lblUsuario_1 = new JLabel("CONTRASEÑA:");
	static JTextField textFieldUser = new JTextField();
    static JTextField textFieldPassword = new JTextField();
	static JTextPane textPane = new JTextPane();
	static JLabel lblTrabajadorloginpasswordWorker = new JLabel("Trabajador(login,password): worker,123456");
	static JLabel lblClienteloginpasswordCliente = new JLabel("Cliente(login,password): client,123456");
	static 	JComboBox comboBox = new JComboBox();
	static 	JLabel lblSeleccioneElIdioma = new JLabel("Seleccione el idioma:");
	static 	JLabel lblEleccion = new JLabel("Introduzca usuario y contraseña.");
	static 	JButton buttonAceptar = new JButton("Aceptar");

	public static String idiomaa;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					IU_Login window = new IU_Login();
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public IU_Login() {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();
		frame.setBounds(100, 100, 538, 327);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		textFieldUser.setBounds(31, 113, 238, 20);
		textFieldUser.setColumns(10);
		frame.setTitle("Practica 3 - Eleccion Usuario Biblioteca");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setBounds(100, 100, 600, 327);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		frame.setContentPane(contentPane);
		contentPane.setLayout(null);
		

		lblEleccion.setBounds(10, 41, 286, 43);
		contentPane.add(lblEleccion);
		

		buttonAceptar.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0){
				boolean res=false;
                String user,password;
                String aux;
                user = textFieldUser.getText();
                password = textFieldPassword.getText();
                
                idiomaa=(String) comboBox.getSelectedItem();
                try {
					IdiomaBD();
				} catch (Exception e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
                
                try {
                	if (ComprobarUsuario(user,password).equalsIgnoreCase("Cliente")){
                		IU_Cliente frame = new IU_Cliente();
						frame.setVisible(true);
                	}
                	else{
                		if (ComprobarUsuario(user,password).equalsIgnoreCase("Trabajador")){
                			IU_Trabajador_3 frame2 = new IU_Trabajador_3();
                			frame2.setVisible(true);
                		}
                		else{
                			 if(idiomaa.equals("Español")){
                			 textPane.setText("No existe el usuario");
                			 JOptionPane.showMessageDialog(frame, "Ha introducido un usario o contraseña incorrectos vuelva a reiniciar la aplicacion con un Usaurio y Contraseña válidos", "Error",JOptionPane.PLAIN_MESSAGE);
                			 System.exit(0);
                			 }
                			 else{
                			 textPane.setText("No such user .");
                			 JOptionPane.showMessageDialog(frame, "UN have entered incorrect user or password Re- RESET Valid UN The application of usaurio scam and Password", "Fail",JOptionPane.PLAIN_MESSAGE);
                			 System.exit(0);

                			 }
                			 }
                	}
                }
                
                catch(Exception e){
                	System.out.println(e.toString());
                	e.printStackTrace();
                }
		}});
                
		buttonAceptar.setBounds(423, 239, 117, 29);
		contentPane.add(buttonAceptar);
		{
			lblUsuario.setBounds(31, 80, 93, 14);
			contentPane.add(lblUsuario);
		}
		{
			lblUsuario_1.setBounds(31, 160, 165, 14);
			contentPane.add(lblUsuario_1);
		}
		{
			contentPane.add(textFieldUser);
		}
		textFieldPassword.setColumns(10);
		textFieldPassword.setBounds(31, 194, 238, 20);
		
		contentPane.add(textFieldPassword);
		textPane.setBounds(46, 225, 223, 43);
		
		contentPane.add(textPane);
		{
			lblTrabajadorloginpasswordWorker.setBounds(306, 45, 255, 35);
			contentPane.add(lblTrabajadorloginpasswordWorker);
		}
		{
			lblClienteloginpasswordCliente.setBounds(306, 91, 234, 14);
			contentPane.add(lblClienteloginpasswordCliente);
		}
		

		lblSeleccioneElIdioma.setBounds(342, 14, 131, 14);
		contentPane.add(lblSeleccioneElIdioma);
		
		comboBox.setModel(new DefaultComboBoxModel(new String[] {"Español", "English"}));
		comboBox.setBounds(483, 11, 78, 20);
		contentPane.add(comboBox);

		comboBox.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if(comboBox.getSelectedItem().equals("Español")){
					setEspañol();
				}
				if(comboBox.getSelectedItem().equals("English")){
					setEnglish();
					
				}
			}
		});
		



	}

	public String ComprobarUsuario(String login, String password) throws Exception{
        Vector<Object> aux = null;
        String tipo="";
        String SQL_Consulta = "SELECT * FROM Usuarios WHERE login = '"+login+"' AND password = '"+password+"';";
		AgenteBD agen = AgenteBD.getAgente();
		Vector<Object> res = agen.selectUser(SQL_Consulta);
		if (res.size() == 1){
			aux = (Vector<Object>) res.elementAt(0);
			tipo = aux.elementAt(0).toString(); 
		}

        return tipo;
    }
	
	public void IdiomaBD() throws Exception{
		int res;

        AgenteBD agen = AgenteBD.getAgente();
        String SQL_Consulta1 = "INSERT INTO Idioma VALUES('"+idiomaa+"');";        
        agen.insert(SQL_Consulta1);	

	}
	
	public void setEnglish(){
		frame.setTitle("Practice 3 - Election User Library");
		lblSeleccioneElIdioma.setText("Select your language");
		lblEleccion.setText("Please enter your username and password");
		lblUsuario.setText("USER");
		lblUsuario_1.setText("PASSWORD");
		lblTrabajadorloginpasswordWorker.setText("Worker(login,password): worker,123456");
		lblClienteloginpasswordCliente.setText("Client(login,password): client,123456");
		if(textPane.getText().equals("No existe el usuario.")){
			textPane.setText("No such user.");
		}
		buttonAceptar.setText("Accept");
		
		
		
		
	}
	
		public void setEspañol(){
			frame.setTitle("Practica 3 - Eleccion Usuario Biblioteca");
			lblSeleccioneElIdioma.setText("Seleccione el idioma: ");
			lblEleccion.setText("Introduzca usuario y contraseña.");
			lblUsuario.setText("USUARIO");
			lblUsuario_1.setText("CONTRASEÑA");
			lblTrabajadorloginpasswordWorker.setText("Trabajador(login,password): worker,123456");
			lblClienteloginpasswordCliente.setText("Cliente(login,password): client,123456");
			if(textPane.getText().equals("No such user.")){
				textPane.setText("No existe el usuario.");
			}
			buttonAceptar.setText("Aceptar");
		
	}

}
